iconview: Don't cache iters
authorBenjamin Otte <otte@redhat.com>
Fri, 4 May 2012 16:44:39 +0000 (18:44 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 6 May 2012 22:12:26 +0000 (00:12 +0200)
This is a huge quest to remove all caching from GtkIconview to simplify
the code. As it turns out, iconview performance is a joke, so the caches
are kinda unnecessary.

If we need caching, we can add it in a useful way later.

gtk/gtkiconview.c
gtk/gtkiconviewprivate.h

index 5f3bf5b0c2c5b1e286ac4f7c6db6c8af4531c0e5..1afeed6743542ae1d9821b106f635573f59f99ef 100644 (file)
@@ -3186,22 +3186,16 @@ gtk_icon_view_row_inserted (GtkTreeModel *model,
   GtkIconView *icon_view = GTK_ICON_VIEW (data);
   gint index;
   GtkIconViewItem *item;
-  gboolean iters_persist;
   GList *list;
 
   /* ignore changes in branches */
   if (gtk_tree_path_get_depth (path) > 1)
     return;
 
-  iters_persist = gtk_tree_model_get_flags (icon_view->priv->model) & GTK_TREE_MODEL_ITERS_PERSIST;
-  
   index = gtk_tree_path_get_indices(path)[0];
 
   item = gtk_icon_view_item_new ();
 
-  if (iters_persist)
-    item->iter = *iter;
-
   item->index = index;
 
   /* FIXME: We can be more efficient here,
@@ -3330,11 +3324,8 @@ gtk_icon_view_build_items (GtkIconView *icon_view)
 {
   GtkTreeIter iter;
   int i;
-  gboolean iters_persist;
   GList *items = NULL;
 
-  iters_persist = gtk_tree_model_get_flags (icon_view->priv->model) & GTK_TREE_MODEL_ITERS_PERSIST;
-  
   if (!gtk_tree_model_get_iter_first (icon_view->priv->model,
                                      &iter))
     return;
@@ -3345,9 +3336,6 @@ gtk_icon_view_build_items (GtkIconView *icon_view)
     {
       GtkIconViewItem *item = gtk_icon_view_item_new ();
 
-      if (iters_persist)
-       item->iter = iter;
-
       item->index = i;
       
       i++;
@@ -4075,22 +4063,13 @@ void
 _gtk_icon_view_set_cell_data (GtkIconView     *icon_view,
                              GtkIconViewItem *item)
 {
-  gboolean iters_persist;
   GtkTreeIter iter;
+  GtkTreePath *path;
 
-  iters_persist = gtk_tree_model_get_flags (icon_view->priv->model) & GTK_TREE_MODEL_ITERS_PERSIST;
-  
-  if (!iters_persist)
-    {
-      GtkTreePath *path;
-
-      path = gtk_tree_path_new_from_indices (item->index, -1);
-      if (!gtk_tree_model_get_iter (icon_view->priv->model, &iter, path))
-        return;
-      gtk_tree_path_free (path);
-    }
-  else
-    iter = item->iter;
+  path = gtk_tree_path_new_from_indices (item->index, -1);
+  if (!gtk_tree_model_get_iter (icon_view->priv->model, &iter, path))
+    return;
+  gtk_tree_path_free (path);
 
   gtk_cell_area_apply_attributes (icon_view->priv->cell_area, 
                                  icon_view->priv->model,
index 81ffd991db90efdb9e6debdfb6591489ba018832..b510037d52bbe021bce8c5d1cc23be31ced4df89 100644 (file)
@@ -25,7 +25,6 @@ struct _GtkIconViewItem
 {
   GdkRectangle cell_area;
 
-  GtkTreeIter iter;
   gint index;
   
   gint row, col;